package com.hl.order.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 订单列表对象 platform_order
 * 
 * @author ruoyi
 * @date 2025-08-07
 */
public class PlatformOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 平台订单id  */
    private Long orderId;

    /** 订单编号 */
    @Excel(name = "订单编号")
    private String platformOrderNo;

    /** 订单描述 */
    @Excel(name = "订单描述")
    private String platformOrderDesc;

    /** 商品单价 */
    @Excel(name = "商品单价")
    private BigDecimal platformOrderPrice;

    /** 实付价格 */
    @Excel(name = "实付价格")
    private BigDecimal realPrice;

    /** 购买的商品数量 */
    @Excel(name = "购买的商品数量")
    private Long count;

    /** 货源地 */
    @Excel(name = "货源地")
    private String sourcesAddress;

    /** 发货单号 */
    @Excel(name = "发货单号")
    private String invoiceNumber;

    /** 使用的优惠券的id */
    @Excel(name = "使用的优惠券的id")
    private Long couponsId;

    /** 联系人姓名 */
    @Excel(name = "联系人姓名")
    private String contactName;

    /** 联系人电话 */
    @Excel(name = "联系人电话")
    private String contractTele;

    /** 联系人地址 */
    @Excel(name = "联系人地址")
    private String contractAddress;

    /** 支付类型（1-微信支付 2-支付宝 3-其他） */
    @Excel(name = "支付类型", readConverterExp = "1=-微信支付,2=-支付宝,3=-其他")
    private Long payType;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date payTime;

    /** 订单支付截止时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单支付截止时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderEndTime;

    /** 订单状态（1-待支付 2-待发货 3-已发货 4-已完成 5-已取消 6-售后处理） */
    @Excel(name = "订单状态", readConverterExp = "1=-待支付,2=-待发货,3=-已发货,4=-已完成,5=-已取消,6=-售后处理")
    private Long status;

    /** 订单创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderCreateTime;

    /** 订单完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "订单完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date orderCompleteTime;

    /** 是否打印（0-未打印 1-已打印） */
    @Excel(name = "是否打印", readConverterExp = "0=-未打印,1=-已打印")
    private Integer isPrinted;

    /** 是否售后（0-无售后 1-有售后） */
    @Excel(name = "是否售后", readConverterExp = "0=-无售后,1=-有售后")
    private Integer isAfterSales;

    /** 是否评价（0-未评价 1-已评价） */
    @Excel(name = "是否评价", readConverterExp = "0=-未评价,1=-已评价")
    private Integer isEvaluate;

    /** 商品单价 */
    @Excel(name = "商品单价")
    private BigDecimal goodPrice;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setPlatformOrderNo(String platformOrderNo) 
    {
        this.platformOrderNo = platformOrderNo;
    }

    public String getPlatformOrderNo() 
    {
        return platformOrderNo;
    }

    public void setPlatformOrderDesc(String platformOrderDesc) 
    {
        this.platformOrderDesc = platformOrderDesc;
    }

    public String getPlatformOrderDesc() 
    {
        return platformOrderDesc;
    }

    public void setPlatformOrderPrice(BigDecimal platformOrderPrice) 
    {
        this.platformOrderPrice = platformOrderPrice;
    }

    public BigDecimal getPlatformOrderPrice() 
    {
        return platformOrderPrice;
    }

    public void setRealPrice(BigDecimal realPrice) 
    {
        this.realPrice = realPrice;
    }

    public BigDecimal getRealPrice() 
    {
        return realPrice;
    }

    public void setCount(Long count) 
    {
        this.count = count;
    }

    public Long getCount() 
    {
        return count;
    }

    public void setSourcesAddress(String sourcesAddress) 
    {
        this.sourcesAddress = sourcesAddress;
    }

    public String getSourcesAddress() 
    {
        return sourcesAddress;
    }

    public void setInvoiceNumber(String invoiceNumber) 
    {
        this.invoiceNumber = invoiceNumber;
    }

    public String getInvoiceNumber() 
    {
        return invoiceNumber;
    }

    public void setCouponsId(Long couponsId) 
    {
        this.couponsId = couponsId;
    }

    public Long getCouponsId() 
    {
        return couponsId;
    }

    public void setContactName(String contactName) 
    {
        this.contactName = contactName;
    }

    public String getContactName() 
    {
        return contactName;
    }

    public void setContractTele(String contractTele) 
    {
        this.contractTele = contractTele;
    }

    public String getContractTele() 
    {
        return contractTele;
    }

    public void setContractAddress(String contractAddress) 
    {
        this.contractAddress = contractAddress;
    }

    public String getContractAddress() 
    {
        return contractAddress;
    }

    public void setPayType(Long payType) 
    {
        this.payType = payType;
    }

    public Long getPayType() 
    {
        return payType;
    }

    public void setPayTime(Date payTime) 
    {
        this.payTime = payTime;
    }

    public Date getPayTime() 
    {
        return payTime;
    }

    public void setOrderEndTime(Date orderEndTime) 
    {
        this.orderEndTime = orderEndTime;
    }

    public Date getOrderEndTime() 
    {
        return orderEndTime;
    }

    public void setStatus(Long status) 
    {
        this.status = status;
    }

    public Long getStatus() 
    {
        return status;
    }

    public void setOrderCreateTime(Date orderCreateTime) 
    {
        this.orderCreateTime = orderCreateTime;
    }

    public Date getOrderCreateTime() 
    {
        return orderCreateTime;
    }

    public void setOrderCompleteTime(Date orderCompleteTime) 
    {
        this.orderCompleteTime = orderCompleteTime;
    }

    public Date getOrderCompleteTime() 
    {
        return orderCompleteTime;
    }

    public void setIsPrinted(Integer isPrinted) 
    {
        this.isPrinted = isPrinted;
    }

    public Integer getIsPrinted() 
    {
        return isPrinted;
    }

    public void setIsAfterSales(Integer isAfterSales) 
    {
        this.isAfterSales = isAfterSales;
    }

    public Integer getIsAfterSales() 
    {
        return isAfterSales;
    }

    public void setIsEvaluate(Integer isEvaluate) 
    {
        this.isEvaluate = isEvaluate;
    }

    public Integer getIsEvaluate() 
    {
        return isEvaluate;
    }

    public void setGoodPrice(BigDecimal goodPrice) 
    {
        this.goodPrice = goodPrice;
    }

    public BigDecimal getGoodPrice() 
    {
        return goodPrice;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("platformOrderNo", getPlatformOrderNo())
            .append("platformOrderDesc", getPlatformOrderDesc())
            .append("platformOrderPrice", getPlatformOrderPrice())
            .append("realPrice", getRealPrice())
            .append("count", getCount())
            .append("sourcesAddress", getSourcesAddress())
            .append("invoiceNumber", getInvoiceNumber())
            .append("remark", getRemark())
            .append("couponsId", getCouponsId())
            .append("contactName", getContactName())
            .append("contractTele", getContractTele())
            .append("contractAddress", getContractAddress())
            .append("payType", getPayType())
            .append("payTime", getPayTime())
            .append("orderEndTime", getOrderEndTime())
            .append("status", getStatus())
            .append("orderCreateTime", getOrderCreateTime())
            .append("orderCompleteTime", getOrderCompleteTime())
            .append("isPrinted", getIsPrinted())
            .append("isAfterSales", getIsAfterSales())
            .append("isEvaluate", getIsEvaluate())
            .append("goodPrice", getGoodPrice())
            .toString();
    }
}
